package com.jzy.weblog.common.enums;

import com.jzy.weblog.common.exception.BaseExceptionInterface;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter // 替代重写
@AllArgsConstructor // 全参构造
public enum ResponseCodeEnum implements BaseExceptionInterface {

    // ----------- 通用异常状态码 -----------
    SYSTEM_ERROR("10000", "出错啦，后台小哥正在努力修复中..."),

    // ----------- 业务异常状态码 -----------
    PRODUCT_NOT_FOUND("20000", "该产品不存在（测试使用）"),

    // ----------- 参数错误状态码 -----------
    PARAM_NOT_VALID("10001", "参数错误"),

    // ----------- 登陆失败状态码 -----------
    LOGIN_FAIL("20000", "登录失败"),

    // ----------- 登录信息错误状态码 -----------
    USERNAME_OR_PWD_ERROR("20001", "用户名或密码错误"),

    // ----------- 未登录访问保护资源错误状态码 -----------
    UNAUTHORIZED("20002", "无访问权限，请先登录！"),

    // ----------- 登录但权限不够访问保护资源错误状态码 -----------
    FORBIDDEN("20004", "演示账号仅支持查询操作！"),

    // ----------- 用户不存在错误状态码 -----------
    USERNAME_NOT_FOUND("20003", "该用户不存在"),

    // ----------- 分类重复错误状态码 -----------
    CATEGORY_NAME_IS_EXISTED("20005", "该分类已存在，请勿重复添加！"),

    TAG_NAME_IS_EXISTED("20006", "该标签已存在，请勿重复添加！"),

    TAG_NOT_EXISTED("20007", "该标签不存在！"),

    FILE_UPLOAD_FAILED("20008", "文件上传失败！"),

    ;

    // 异常码
    private String errorCode;
    // 错误信息
    private String errorMessage;
}
